/********************************************************************************
 * Project Name		[JavaEE_Components]
 * File Name     	[JAF.java]
 * Creation Date 	[2015-01-01]
 * 
 * Copyright© ge.y.yang@gmail.com All Rights Reserved
 * 
 * Work hard, play harder, think big and keep fit
 ********************************************************************************/
package javamail._notes;

/**
 * JavaBean Activation Framework[JAF]
 * 
 * @author 不落的太阳(Sean Yang aka ShortPeace)
 * @version 1.0
 * @since jdk 1.8
 * 
 */
public final class JAF {

	public void dataSource() {
		/**
		 * javax.activation.DataSource<br/>
		 * 
		 * 用于将数据封装成可被JAF使用的对象<br/>
		 * 
		 * 常用子类<br/>
		 * javax.activation.FileDataSource 用于从文件系统中读取数据<br/>
		 * new FileDataSource(java.io.File file)<br/>
		 * new FileDataSource(String fileName)<br/>
		 * 
		 * javax.activation.URLDataSource 用于从URL读取数据<br/>
		 * new URLDataSource(java.net.URL url);<br/>
		 * 
		 * 常用方法<br/>
		 * getInputStream();<br/>
		 * getOutputStream();<br/>
		 * getContentType(); 返回数据源中封装的数据的MIME类型<br/>
		 * getName(); 返回数据源中封装的数据名称, 如果是文件数据, 则返回文件名<br/
		 */
	}

	public void dataHandler() {
		/**
		 * javax.activation.DataHandler<br/>
		 * 
		 * JAF核心API, 应用程序通过其来访问DataSource中封装的数据以及数据的MIME类型<br/>
		 * 
		 * new DataHandler(javax.activation.DataSource dataSource);<br/>
		 * new DataHandler(java.net.URL.url);<br/>
		 * 
		 * 常用方法<br/>
		 * getDataSource();<br/>
		 * getName(); 返回数据对象的名称, 调用DataSource的getName()方法<br/>
		 * getContentType(); 获得数据对象的MIME类型<br/>
		 * getInputStream();<br/>
		 * getOutputSteam();<br/>
		 * writeTo(OutputStream out);<br/>
		 */
	}

	public void jafInJavaMail() {
		/**
		 * JavaMail中使用JAF<br/>
		 * <code>
		 * String fileName = "z:/temp/1.jpg";
		 * 
		 * MimeBodyPart attachment = new MimeBodyPart();
		 * DataSource dataSource = new FileDataSource(fileName);
		 * DataHandler dataHandler = new DataHandler(dataSource);
		 * attachment.setDataHandler(dataHandler);
		 * attachment.setFileName(MimeUtility.encodeText(dataSource.getName()));
		return attachment;
		 * </code><br/>
		 */
	}
}
